// Package model internal/entity/model/menu.go
package model

import "time"

// Menu 菜单模型
type Menu struct {
	ID         int        `gorm:"primaryKey;autoIncrement" json:"id"`
	ParentID   *int       `json:"parent_id"`                   // 父级菜单ID
	MenuName   string     `json:"menu_name"`                   // 菜单名称
	Icon       string     `json:"icon"`                        // 图标
	Value      string     `json:"value"`                       // 接口权限值
	MenuType   int        `json:"menu_type"`                   // 菜单类型：1->目录；2->菜单；3->按钮（接口绑定权限）
	URL        string     `json:"url"`                         // 菜单URL
	MenuStatus int        `json:"menu_status"`                 // 启用状态；1->禁用；2->启用
	Sort       int        `json:"sort"`                        // 排序
	CreateTime *time.Time `json:"create_time"`                 // 创建时间
	Children   []Menu     `gorm:"-" json:"children,omitempty"` // 子菜单
}

// TableName 设置表名
func (Menu) TableName() string {
	return "sys_menu"
}
